package com.fs.leetcode.array;

import com.google.common.collect.Lists;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

/**
 * @author shuai.fang
 * @date：2018-02-01
 * @description：
 */
public class PlusOne {

	public static void main(String[] args) {
		System.out.println(plusOne(1234));
		System.out.println(plusOne(9999));
	}


	public static List<Integer> plusOne(int value) {
		ArrayList<Integer> digits = Lists.newArrayList();
		int modValue = 0;
		int tempValue = value;
		do {
			modValue = tempValue % 10;
			tempValue = tempValue / 10;
			System.out.println(tempValue);
			digits.add(modValue);
		} while (tempValue != 0);

		Collections.reverse(digits);

		// 初始值1 每次叠加时使用
		int v = 1;
		for (int i = digits.size() - 1; i >= 0; i--) {
			int va = digits.get(i);
			int sum = va + v;
			modValue = sum % 10;
			v = sum / 10;
			digits.set(i, modValue);
		}

		if (v == 1) {
			digits.add(0, v);
		}
		return digits;
	}





}
